/*
 * ATGM336H-5N BDS/GNSS全星座定位导航模块
 */

#ifndef ATGM336_H_
#define ATGM336_H_

#include <string.h>
#include <stdio.h>
#include "driverlib\MSP430F5xx_6xx\driverlib.h"
#include "msp430.h"
#include "head\FPGA.h"

/*
 * 引脚模块相关定义
 */
#define ATGM336H_USCI_PORT                      GPIO_PORT_P9
#define ATGM336H_USCI_PIN_TX                    GPIO_PIN4//p9.4
#define ATGM336H_USCI_PIN_RX                    GPIO_PIN5//p9.5
#define ATGM336H_USCI_BASE                      USCI_A2_BASE //模块基地址，P9.4和.5使用的是USCI_A2
//------------状态引脚-----------------
#define ATGM336H_LED_PORT                       GPIO_PORT_P2
#define ATGM336H_LED_PIN                        GPIO_PIN1//p2.1
#define ATGM336H_LED_REG_PORT                   P2OUT
#define ATGM336H_LED_REG_PIN                    BIT1

/*
 * 定义数组长度
 */
#define ATGM336H_GPS_Buffer_Length  128

uint8_t ATGM336H_AntennaStatus;
uint8_t *pATGM336hRxData;
uint16_t *pATGM336hRxCount;
/*
 * @brief  初始化ATGM336H模块
 * @param  无
 * @retval 无 */
void ATGM336H_Init();

/*
 * @brief  获取一帧RMC数据存到ATGM336H_RxBuffer里
 * @param  无
 * @retval 无 */
void ATGM336H_getRMC(uint8_t *RxBuff,uint16_t *RxCount);

/*
 * @brief  获取一帧TXT数据存到ATGM336H_RxBuffer里
 * @param  无
 * @retval 无 */
void ATGM336H_getRMCandTXT(uint8_t *RxBuff,uint16_t *RxCount);

/*
 * @brief  检查GPS模块天线状态是否正常
 * @param  无
 * @retval 返回状态值
 *          0：正常工作
 *          1：天线正常
 *          2：天线开路
 *          3：天线短路 */
uint8_t ATGM336H_checkStatus(uint8_t *RxBuff,uint16_t *RxCount);

///*
// * @brief  解析从gps接收到的数据，如果没有接收到新的数据，则函数自动跳过
// * @param  无
// * @retval 无
// */
//void ATGM336H_parseGpsBuffer(_ATGM336H_SaveData *ATGM336data);

/*
 * @brief  发送控制message至ATGM336H
 * @param  message 要发送的NMEA自定义信息，详见《ATGM336H卫星导航模块用户手册V1.3动能世纪代理.pdf》的1.6节“NMEA自定义消息”
 *                 开头的$,末尾的*、校验和与回车换行不需要输入
 *                 输入示例      PCAS03,1,1,1,1,1,1,0,1
 * @retval 无 */
void ATGM336H_sendControlMessage(uint8_t *message);

/*
 * @brief  打开gps的电源
 * @param  无
 * @retval 无 */
void ATGM336H_powerON();

/*
 * @brief  关闭gps的电源
 * @param  无
 * @retval 无 */
void ATGM336H_powerOFF();

/*
 * @brief  打开gps的led指示灯
 * @param  无
 * @retval 无 */
void ATGM336H_ledON();

/*
 * @brief  关闭gps的led指示灯
 * @param  无
 * @retval 无 */
void ATGM336H_ledOFF();

/*
 * @brief  切换gps的led指示灯亮灭状态
 * @param  无
 * @retval 无 */
void ATGM336H_ledToggle();

#endif /* ATGM336_H_ */

